import time
import unittest
from BeautifulReport import BeautifulReport as bf

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select


class ChromeTestCase(unittest.TestCase):
    """
    这是一个 Chrome 的 测试集
    """
    driver = None

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()

    def test_alert(self):
        """测试普通弹窗"""
        self.driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/testSelenium.html")
        time.sleep(1)
        self.driver.find_element(By.XPATH, "//input[@value='Alert']").click()
        # 从浏览器中将 光标 切换至 弹窗中
        alert = self.driver.switch_to.alert
        # 获得 弹窗中 的 名字
        print(alert.text)

        # 点击 弹窗中的  确定操作
        # alert.accept()
        # 点击取消
        alert.dismiss()

        time.sleep(3)

    def test_confirmation(self):
        """测试确认弹窗"""
        self.driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/testSelenium.html")
        time.sleep(1)
        self.driver.find_element(By.XPATH, "//input[@value='Confirmation']").click()
        # 从浏览器中将 光标 切换至 弹窗中
        alert = self.driver.switch_to.alert
        # 获得 弹窗中 的 名字
        print(alert.text)

        # 点击 弹窗中的  确定操作
        # alert.accept()
        # 点击取消
        alert.dismiss()
        time.sleep(3)

    def test_prompt(self):
        """测试输入弹窗"""
        self.driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/testSelenium.html")
        time.sleep(1)
        self.driver.find_element(By.XPATH, "//input[@value='prompt']").click()
        # 从浏览器中将 光标 切换至 弹窗中
        alert = self.driver.switch_to.alert
        # 获得 弹窗中 的 名字
        print(alert.text)

        # 向 文本框中 写入数据
        alert.send_keys('hanamaki')
        time.sleep(3)

        # 点击 弹窗中的  确定操作
        # alert.accept()
        # 点击取消
        alert.dismiss()
        time.sleep(3)

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()
        pass


if __name__ == '__main__':
    pass
